import ReactDOM from "react-dom/client";

import App from "./App";

const root = ReactDOM.createRoot(document.querySelector("#root")!);

root.render(<App />);

/**
 * 组件通信
 *
 *  父子
 *    父 - 子
 *      传递一个 prop 给到子组件
 *    子 - 父
 *      子组件调用父组件传递过来的函数（prop）
 *
 *  非父子
 *    状态提升【将state状态数据放置在共同的父组件身上，然后通过prop的方式来玩】
 *    中间事件总线
 *      0. pubsub-js
 *      1. mitt
 *      2. tiny-emitter
 *
 *  更复杂的情况
 *    1. ref 获取子组件实例
 *    2. context 上下文
 *    3. 状态管理器
 *      redux
 *      mobx
 */

// import PubSub from "pubsub-js";

/**
 * 订阅消息
 *  subscribe(message, callback)
 *
 *    message: string         消息名字
 *    callback: (msg: string, payload: any) => void    回调函数
 *      msg - 消息名字
 *      payload - 触发消息时传递过来的参数
 */
// PubSub.subscribe("abcd", (msg, payload) => {
//   console.log("msg", msg);
//   console.log("payload", payload);
// });

// setTimeout(() => {
//   PubSub.publish("abcd", "张三");
// }, 2000);
